pub fn new_birthday_probability(n: u32) -> f64 {
    // TODO: 这里写逻辑
    //todo!()
    let mut _p: f64 = 0.0;
    if n < 2 {
        _p = 0.0;
    } else {
        _p = 1.0 - cal_no_same_birthday_probability(n);
    }
    _p
}

// 计算逆命题:所有人生日都不同的概率, 一年的天数暂固定为365，不考虑闰年
fn cal_no_same_birthday_probability(n: u32) -> f64 {
    let days: f64 = 365.0;
    let mut p: f64 = 1.0;
    let mut n: f64 = n as f64;
    while n > 0.0 {
        p = p * (days - (n - 1.0)) / days;
        // 当 n = 1，上方已经计算过一次，n = 0需要放弃，不能进while循环
        n = n - 1.0;
    }
    p
}
